Package gwtappcontainer.server.apps.insight

Source Code of gwtappcontainer.server.apps.insight.CenterRepository

package gwtappcontainer.server.apps.insight;

import gwtappcontainer.server.Utils;
import gwtappcontainer.server.apps.APIException;
import gwtappcontainer.shared.apis.APIResponse.Status;
import gwtappcontainer.shared.apps.insight.Center;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class CenterRepository {
 
  public static Center get(String centerName) {
    return getByIdOrName(0, centerName);                
  }
 
  public static Center get(long centerId) {
    return getByIdOrName(centerId, null);                
  }
   
  private static Center getByIdOrName(long centerId, String centerName) {
       
      try {
        String sql;
        if (centerId == 0)
          sql = "select center_id, center from centers where center = ?";
        else
          sql = "select center_id, center from centers where center_id = ?";
          
            Center center = null;
          
            try (Connection connection = DriverManager.getConnection(Utils.getCloudSqlURL())) {
                  
                try (PreparedStatement ps = connection.prepareStatement(sql)) {
                   
                  if (centerId == 0)
                    ps.setString(1, centerName.toLowerCase());
                  else
                    ps.setLong(1, centerId);
                  
                    try (ResultSet resultSet = ps.executeQuery()) {                                       
                        while (resultSet.next()) {
                            center = new Center();
                            center.id = resultSet.getInt(1);
                            center.name = resultSet.getString(2);
                        }
                    }
                }
            }
          
            return center;
            
      } catch (Exception ex) {
              throw new RuntimeException(ex);
      }             
  }
 
  public static Center add(String centerName) {        
         
     if (null != get(centerName))
       throw new APIException(Status.ERROR_RESOURCE_ALREADY_EXISTS,
           "Center [" + centerName + "] already exists");
    
     try {
         String sql = "insert into centers values (0, ?)";                     
       
         try (Connection connection = DriverManager.getConnection(Utils.getCloudSqlURL())) {
               
             try (PreparedStatement ps = connection.prepareStatement(sql)) {
                   
                 ps.setString(1, centerName.toLowerCase());
               
                 ps.executeUpdate();                                   
             }
         }
       
         Center center = get(centerName);       
         return center;
           
     } catch (Exception ex) {
         throw new RuntimeException(ex);
     }             
   }

  public static void delete(String centerName) {
        
       Center center = get(centerName);
     
       if (null == center)
           throw new APIException(Status.ERROR_RESOURCE_DOES_NOT_EXIST,
                           "Center [" + centerName + "] does not exist");
                                             
       try {
           String sql = "delete from centers where center = ?";                       
         
           try (Connection connection = DriverManager.getConnection(Utils.getCloudSqlURL())) {
                 
               try (PreparedStatement ps = connection.prepareStatement(sql)) {
                     
                   ps.setString(1, centerName.toLowerCase());
                 
                   ps.executeUpdate();                                   
               }
           }                                                                     
       } catch (Exception ex) {
           throw new RuntimeException(ex);
       }             
   }

  public static ArrayList<Center> getAll() {
    try {
          String sql = "select center_id, center from centers order by center";
        
          ArrayList<Center> centers = new ArrayList<>();
        
          try (Connection connection = DriverManager.getConnection(Utils.getCloudSqlURL())) {
                            
              try (PreparedStatement ps = connection.prepareStatement(sql)) {                                     
                
                  try (ResultSet resultSet = ps.executeQuery()) {                                       
                      while (resultSet.next()) {
                          Center center = new Center();
                          center.id = resultSet.getInt(1);
                          center.name = resultSet.getString(2);
                         
                          centers.add(center);
                      }
                  }
              }
          }
        
          return centers;
            
      } catch (Exception ex) {
              throw new RuntimeException(ex);
      }
  }
}
TOP

Related Classes of gwtappcontainer.server.apps.insight.CenterRepository

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.